---
title: MouseInteraction 鼠标交互
icon: MousePointer
relatedFile: app/src/core/service/controlService/stageMouseInteractionCore/stageMouseInteractionCore.tsx
---

该服务主要负责管理用户鼠标与画布上元素的交互状态。它能够实时检测鼠标悬停在哪些边（Edge）、多目标无向边（MultiTargetUndirectedEdge）和区域（Section）上，并提供查询当前悬停对象的方法。

### API

### `isHaveHoverObject(): boolean`

判断当前是否有任何对象处于鼠标悬停状态。

### `hoverEdges: Edge[]`

获取当前所有处于鼠标悬停状态的边。

### `firstHoverEdge: Edge | undefined`

获取第一个处于鼠标悬停状态的边（如果有）。

### `hoverSections: Section[]`

获取当前所有处于鼠标悬停状态的区域。

### `firstHoverSection: Section | undefined`

获取第一个处于鼠标悬停状态的区域（如果有）。

### `hoverMultiTargetEdges: MultiTargetUndirectedEdge[]`

获取当前所有处于鼠标悬停状态的多目标无向边。

### `firstHoverMultiTargetEdge: MultiTargetUndirectedEdge | undefined`

获取第一个处于鼠标悬停状态的多目标无向边（如果有）。

### `isHoverEdge(edge: Edge): boolean`

判断指定的边是否处于鼠标悬停状态。

### `isHaveHoverEdge(): boolean`

判断当前是否有任何边处于鼠标悬停状态。

### `updateByMouseMove(mouseWorldLocation: Vector): void`

根据鼠标的当前世界坐标更新所有悬停对象的状态。此方法会在鼠标移动时被调用，用于重新计算哪些对象被悬停。
